package br.com.model.entidade;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import org.hibernate.annotations.CollectionOfElements;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

import br.com.arquitetura.entidade.Persistente;

@Entity
@Table(uniqueConstraints = {@UniqueConstraint(columnNames={"matricula"})})
public class Usuario implements Persistente{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue
	private Long id;
	private String nome;	
	private String matricula;
	private String senha;
	private boolean ativo;
	private String email;
	@CollectionOfElements
	private List<String> permissoes;
	
	private String cpf;
	
	public Usuario() {
		this.permissoes = new ArrayList<String>();
		this.ativo = true;
	}
	
	
	
	
	public String getCpf() {
		return cpf;
	}


	

	public String getEmail() {
		return email;
	}




	public void setEmail(String email) {
		this.email = email;
	}




	public void setCpf(String cpf) {
		this.cpf = cpf;
	}




	public List<String> getPermissoes() {
		return permissoes;
	}


	public void setPermissoes(List<String> permissoes) {
		this.permissoes = permissoes;
	}


	public boolean isAtivo() {
		return ativo;
	}
	public void setAtivo(boolean ativo) {
		this.ativo = ativo;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getMatricula() {
		return matricula;
	}
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	
	
}
